Sistemas de recuperación

Introducción

Es normal enfrentarse a situaciones en las que se produce un fallo y cuando se produce, hay que mantener las propiedades ACID aunque se produzca un fallo en la base de datos.

El esquema de recuperación de la base de datos es el encargado de asegurar ante posibles fallos:

El tiempo de recuperación ante un fallo debe ser mínimo.

 

Clasificación de fallos

 

Dependiendo del tipo de fallo se selecciona una forma de recuperación que usan diferentes tipos de algoritmos. Estos algoritmos constan de dos partes:

 

Estructuras de almacenamiento

Toda la información y todos los datos transaccionales deben ir siempre en almacenamiento no volátil.

 

Arquitecturas de recuperación

Sin réplicas ni varias zonas de disponibilidad

Es una arquitectura simple donde el sistema se conecta a la base de datos en una única ubicación concreta.

Es una arquitectura poco deseable por lo vulnerable que es.

 

Sin_replicas_ni_varias_zonas_de_disponibilidad

 

Con una réplica en standby de la base de datos en varias zonas de disponibilidad

En esta arquitectura una base de datos se encuentra en una zona de disponibilidad y la replica se mantiene en standby en otra zona de disponibilidad, con lo que si ocurriera un error en nuestra base de datos principal, automáticamente entraría en servicio la réplica.

 

Replica_en_standby_y_multiples_zonas_de_disponibilidad

 

Con una réplica en standby de la base de datos y otra replica para las consultas de lectura en diferentes zonas de disponibilidad

Esta arquitectura tiene una instancia primaria de la base de datos se encuentra en una zona de disponibilidad, otra réplica que se mantiene en standby en otra zona de disponibilidad y otra réplica en otra zona de disponibilidad para las consultas de lectura.

Esto nos aporta una alta disponibilidad y la posibilidad de recuperación.

 

Replica en standby + replica lectura y multiples zonas de disponibilidad

 

Recuperación y atomicidad

Si se produce un error durante la ejecución de una transacción, no sabremos si esta se ha ejecutado correctamente o no. Teniendo en mente este hecho podremos:

Independientemente de la opción escogida, nuestra base de datos se quedará en un estado inconsistente.

Esta situación se produce por no tener certeza sobre si la transacción ha finalizado correctamente o no.

 

Recuperación basada en registro histórico (redo logs)

Todas las bases de datos relacionales tienen un registro histórico, que es donde se almacenan todas las modificaciones realizadas en la base de datos.

Estructura del registro histórico:

 

  1. Al realizar una escritura es necesario crear el registro histórico antes de modificar nada en la base de datos.

  2. Una vez que se crea el registro histórico se procede a modificar la base de datos.

Gracias a este comportamiento se pueden realizar operaciones de deshacer para volver a valores anteriores.

 

Alta disponibilidad en bases de datos

La alta disponibilidad es la cualidad de un sistema que asegura un alto nivel de rendimiento operativo durante un periodo de tiempo determinado.

Funciona como un mecanismo de respuesta a fallos de infraestructura.

 

by Jose Manuel Pinillos